<?php

// PHP雪里开轻量级报修系统 V1.0Beta
// 演示地址: http://baoxiu.chalide.cn
// 更新关注: /weivote
// 文件路径: sys/pass.php
// 文件大小: 4491 字节
// 最后修改时间: 2025-05-21 15:43:06
// 作者: yujianyue
// 邮件: 15058593138@qq.com
// 版权所有,保留发行权和署名权

/**
 * 本文件功能：修改密码
 * 版权声明：保留发行权和署名权
 * 作者信息：功能反馈:15058593138@qq.com(手机号同微信)
 */

// 处理AJAX请求
if (isset($_GET['act']) && $_GET['act'] == 'save') {
    // 获取表单数据
    $old_password = isset($_POST['old_password']) ? trim($_POST['old_password']) : '';
    $new_password = isset($_POST['new_password']) ? trim($_POST['new_password']) : '';
    $confirm_password = isset($_POST['confirm_password']) ? trim($_POST['confirm_password']) : '';
    
    // 验证数据
    if (empty($old_password)) {
        json_error('请输入原密码');
    }
    
    if (empty($new_password)) {
        json_error('请输入新密码');
    }
    
    if ($new_password != $confirm_password) {
        json_error('两次输入的新密码不一致');
    }
    
    if (strlen($new_password) < 6) {
        json_error('新密码长度不能少于6个字符');
    }
    
    // 验证原密码
    $user_id = $_SESSION['user_id'];
    $sql = "SELECT password FROM " . DB_PREFIX . "stux WHERE id = {$user_id}";
    $result = $mysqli->query($sql);
    
    if ($result && $result->num_rows > 0) {
        $row = $result->fetch_assoc();
        
        if (md5($old_password) != $row['password']) {
            json_error('原密码错误');
        }
        
        // 更新密码
        $new_password_md5 = md5($new_password);
        $sql = "UPDATE " . DB_PREFIX . "stux SET password = '{$new_password_md5}' WHERE id = {$user_id}";
        
        if ($mysqli->query($sql)) {
            json_success('密码修改成功');
        } else {
            json_error('密码修改失败: ' . $mysqli->error);
        }
    } else {
        json_error('用户信息获取失败');
    }
    
    exit;
}

// 包含头部
include './inc/head.php';
?>

<h2 class="page-title">修改密码</h2>

<div class="card">
    <div class="card-body">
        <form id="passwordForm">
            <div class="form-group">
                <label class="form-label" for="old_password">原密码</label>
                <input type="password" class="form-control" id="old_password" name="old_password" required>
            </div>
            
            <div class="form-group">
                <label class="form-label" for="new_password">新密码</label>
                <input type="password" class="form-control" id="new_password" name="new_password" required>
                <small class="form-text text-muted">密码长度不少于6个字符</small>
            </div>
            
            <div class="form-group">
                <label class="form-label" for="confirm_password">确认新密码</label>
                <input type="password" class="form-control" id="confirm_password" name="confirm_password" required>
            </div>
            
            <div class="form-group">
                <button type="button" class="btn btn-primary" id="saveBtn">保存修改</button>
            </div>
        </form>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    document.getElementById('saveBtn').addEventListener('click', function() {
        var oldPassword = document.getElementById('old_password').value;
        var newPassword = document.getElementById('new_password').value;
        var confirmPassword = document.getElementById('confirm_password').value;
        
        // 简单验证
        if (!oldPassword) {
            showToast('请输入原密码', 'warning');
            return;
        }
        
        if (!newPassword) {
            showToast('请输入新密码', 'warning');
            return;
        }
        
        if (newPassword !== confirmPassword) {
            showToast('两次输入的新密码不一致', 'warning');
            return;
        }
        
        if (newPassword.length < 6) {
            showToast('新密码长度不能少于6个字符', 'warning');
            return;
        }
        
        // 发送AJAX请求
        ajax('?do=pass&act=save', {
            old_password: oldPassword,
            new_password: newPassword,
            confirm_password: confirmPassword
        }, function(response) {
            if (response.status === 'success') {
                showToast(response.msg, 'success');
                document.getElementById('passwordForm').reset();
            } else {
                showToast(response.msg, 'error');
            }
        });
    });
});
</script>
